"""
生成折线图
"""
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts, LabelOpts, LineStyleOpts

us_f = open("C:/Users/13939/Desktop/xxh/Learn/第1-12章资料/资料/可视化案例数据/折线图数据/美国.txt","r",encoding="utf-8")
us_data = us_f.read()
us_f.close()
# print(us_data)
# 去掉不合规的字符
us_data = us_data.replace("jsonp_1629344292311_69436(","")
us_data = us_data[:-2]
# JSON字符串转换为Python数据类型
us_dict = json.loads(us_data)
# print(us_dict)
us_trend_dict = us_dict["data"][0]["trend"]
# print(us_trend_dict)
# 获取日期数据，用于X轴，取2020共314天
x_us_data = us_trend_dict["updateDate"][:314]
# 获取确认数据，用于Y轴，取2020共314天
y_us_data = us_trend_dict["list"][0]["data"][:314]

j_f = open("C:/Users/13939/Desktop/xxh/Learn/第1-12章资料/资料/可视化案例数据/折线图数据/日本.txt","r",encoding="utf-8")
j_data = j_f.read()
j_f.close()
# print(j_data)
# 去掉不合规的字符
j_data = j_data.replace("jsonp_1629350871167_29498(","")
j_data = j_data[:-2]
# JSON字符串转换为Python数据类型
j_dict = json.loads(j_data)
# print(j_dict)
us_trend_dict = j_dict["data"][0]["trend"]
# print(us_trend_dict)
# 获取日期数据，用于X轴，取2020共314天
x_j_data = us_trend_dict["updateDate"][:314]
# 获取确认数据，用于Y轴，取2020共314天
y_j_data = us_trend_dict["list"][0]["data"][:314]


in_f = open("C:/Users/13939/Desktop/xxh/Learn/第1-12章资料/资料/可视化案例数据/折线图数据/印度.txt","r",encoding="utf-8")
in_data = in_f.read()
in_f.close()
# print(in_data)
# 去掉不合规的字符
in_data = in_data.replace("jsonp_1629350745930_63180(","")
in_data = in_data[:-2]
# JSON字符串转换为Python数据类型
in_dict = json.loads(in_data)
# print(in_dict)
us_trend_dict = in_dict["data"][0]["trend"]
# print(us_trend_dict)
# 获取日期数据，用于X轴，取2020共314天
x_in_data = us_trend_dict["updateDate"][:314]
# 获取确认数据，用于Y轴，取2020共314天
y_in_data = us_trend_dict["list"][0]["data"][:314]

# 生成图表
line = Line()
line.add_xaxis(x_us_data)
line.add_yaxis(
    "美国确诊人数",
    y_us_data,
    label_opts=LabelOpts(is_show=False),
    linestyle_opts=LineStyleOpts(color="blue")
)
line.add_yaxis(
    "日本确诊人数",
    y_j_data,
    label_opts=LabelOpts(is_show=False),
    linestyle_opts=LineStyleOpts(color="red"))
line.add_yaxis("印度确诊人数",
               y_in_data,
               label_opts=LabelOpts(is_show=False),
               linestyle_opts=LineStyleOpts(color="green"))
line.set_global_opts(
    title_opts=TitleOpts(title="2020年美日印疫情折线图",pos_left="center",pos_bottom="1%"),
    legend_opts=LegendOpts(is_show=True,pos_top="5%",pos_right="5%"),
    toolbox_opts=ToolboxOpts(is_show=True),
    visualmap_opts=VisualMapOpts(is_show=True)
)
line.render("2020年美日印疫情折线图.html")